

# 序列中的通用操作 ，包括 ： 索引，切片 ，相加 ，相乘 ，检查成员

# 1. 索引 : seq[index]    index : 代表的是下标位置 。
lst = ['a','b',2]
my_str = 'abcde23456'
tp = ('1',23,'a','d')

# 访问以上数据类型中的第三个元素 ，课时使用索引
print(lst[2])
print(my_str[2])
print(tp[2])

# 从右开始取数
print(lst[-1])
print(my_str[-8])
print(tp[-2])

# 为列表赋值 ：list[index] = 新值
lst[2] = 'c'
print(lst)


# 2. 切片 ：
"""
格式 ：seq[start:end:step]
    start : 代表切片的起始位置 ，默认值为0
    end : 代表的结束位置 ，不包含结束位置的元素 。默认值就是序列的长度
    step : 步长 ，默认步长为1
"""
lst5 = ['red','green','blue','black','gold','orange']
print("获取第2~第5个(不包括第5个)的元素：",lst5[1:4:1])
print("获取偶数的元素：",lst5[1:6:2])
print("获取前三个元素：",lst5[:3:])
print("获取偶数的元素：",lst5[1::2])
print("获取全部的元素：",lst5[::])


# 3. 相加和相乘
"""
相加 ：seq3 = seq1 + seq2 ，两个相同的序列可以进行相加
相乘 ： seq1 = seq * n  , 一个序列乘以了一个数，里面的值赋值了n次
"""
my_str1 = "abc"
tp1 = ("hello","world")
lst1 = ["hello","world"]

# 相加
my_str2 = my_str + my_str1
print(my_str2)
tp2 = tp1 + tp
print(tp2)
lst2 = lst + lst1
print(lst2)

# 相乘
my_str3 = my_str1 * 3
print(my_str3)
tp3 = tp1 * 3
print(tp3)
lst3 = lst1 * 3
print(lst3)


# 4. 检查元素
"""
obj in seq: 判断某个obj这个元素是否在序列中，支持列表，元组，字符串，字典 。
若seq是字典 ，那么默认检查的是键名是否存在
"""
my_str6 = "abc"
tp6 = ("hello","world")
lst6 = ["hello","world"]
dct = {'a':1,'b':2}     # sgu

print('b' in my_str6)       # True
print('d' in my_str6)       # False
print("hello" in tp6)
print('a' in dct)
print(1 in dct)